home *** CD-ROM | disk | FTP | other *** search
/ Aminet 25 / Aminet 25 (1998)(GTI - Schatztruhe)[!][Jun 1998].iso / Aminet / text / tex / amiweb2c.lha / AmiWeb2c-2.1 / texmf / pastex / rexx / Start_TeX.rexx < prev    next >
Encoding:
OS/2 REXX Batch file  |  1997-02-09  |  3.0 KB  |  134 lines

  1. /*
  2. ** AREXX $VER: Start_TeX.rexx V1.42 (24.7.92)
  3. **
  4. ** This AREXX script compiles the files given in argument, using an
  5. ** optional format argument. All in all, it handles as if you had called
  6. ** virtex directly (except if you want to pass virtex some options). As
  7. ** the server is called, any virtex error messages will go to the server
  8. ** window, not the CLI. A '?' formatname will interactively ask for the
  9. ** format to use.
  10. **
  11. ** AUTHOR: J\"org H\"ohle, March 91
  12. **         Revised: 21 April 1991
  13. **
  14. ** BUGS: virtex doesn't like filenames with blanks (and ARexx parses them
  15. **       hardly too), so avoid them in file, directory *and* device names.
  16. **
  17. **       does not like names relative to the local root, like ":foo/bar"
  18. **
  19. ** FILES: ENV:TEXFORMAT     default format used
  20. **        REXX:NameStruc
  21. */
  22.  
  23. Options Results
  24.  
  25. Signal On BREAK_C
  26. Signal On BREAK_D
  27.  
  28. PORTNAME = 'Start_TeX'
  29. SCRIPT   = 'TeX-server.rexx' /* no path required, message only */
  30.  
  31. /*
  32. ** Ask interactively for the format name
  33. */
  34. If "" = GetClip("TEXQUERY") Then
  35.   ASKFORMAT = 0
  36. Else
  37.   ASKFORMAT = 1
  38.  
  39. Parse Arg Format FULLNAME
  40. If "?" = FORMAT Then Do
  41.   ASKFORMAT = 1
  42.   FORMAT    = ""
  43. End; Else If '&' = Left(FORMAT,1) Then
  44.   FORMAT = SubStr(FORMAT,2)
  45. Else Do
  46.   Parse Arg FULLNAME /* no format given */
  47.   FORMAT = ""
  48. End
  49.  
  50. FULLNAME = Strip(FULLNAME)
  51.  
  52. Parse Value NameStruc(FULLNAME) With IVOL IDIRS IBASE .
  53.  
  54. /*
  55. ** Supply a default extension
  56. */
  57. If "" = SubStr(FULLNAME,1+IVOL+IDIRS+IBASE) Then
  58.   FULLNAME = FULLNAME||".tex"
  59.  
  60. If 0 = IVOL Then Do
  61.   DIREC = Pragma('d')
  62.   If Right(DIREC,1) ~= '/' & Right(DIREC,1) ~= ':' Then
  63.     DIREC = DIREC||'/'
  64.   FULLNAME = DIREC||FULLNAME
  65.   Drop DIREC
  66. End
  67. Drop IVOL IDIRS IBASE
  68.  
  69. If ~Exists(FULLNAME) Then Do
  70.   Say 'Fehler, 'FULLNAME' nicht gefunden!'
  71.   Exit 10
  72. End
  73.  
  74. If Show('Port',PORTNAME) Then Do
  75.   ENVFORMAT = MyGetEnv("TEXFORMAT")
  76.   If "" = FORMAT Then Do
  77.     FORMAT = ENVFORMAT
  78.     If ASKFORMAT | "" = ENVFORMAT Then Do
  79.       If "" = FORMAT Then
  80.         FORMAT = 'plain'
  81.  
  82.       Options Prompt 'Welches Format soll benutzt werden (bisher 'FORMAT')? '
  83.       Parse Pull NFORMAT .
  84.       Options Prompt
  85.  
  86.       If "" ~= NFORMAT Then
  87.         FORMAT = NFORMAT
  88.     End /* ASKFORMAT */
  89.   End   /* !FORMAT */
  90.  
  91. /*
  92. ** If the server is already busy with some compilation, this will
  93. ** wait till compilation finishes, thus may take a long time.
  94. */
  95.   Say 'Starte TeX-Server mit dem Format 'FORMAT' und der Datei 'FULLNAME'.'
  96.   If FORMAT ~= ENVFORMAT THen
  97.     Call MySetEnv("TEXFORMAT",FORMAT)
  98.  
  99.   Address Value PORTNAME
  100.   'compile' FORMAT FULLNAME
  101.   Say 'TeX-Server wurde mit Datei 'FULLNAME' aufgerufen.'
  102. End; Else Do
  103. /*
  104. ** The TeX server must be started first
  105. */
  106.   Say 'Fehler, der TeX-Server 'SCRIPT' läuft nicht!'
  107.   Exit 5
  108. End
  109.  
  110. BREAK_C:
  111. BREAK_D:
  112. Exit
  113.  
  114. /*
  115. ** When will ARexx supply GetEnv/SetEnv ?
  116. */
  117. MyGetEnv: Procedure
  118. Parse Arg NAME
  119.  
  120. If Open(TEMPFILE,"ENV:"||NAME,'r') Then Do
  121.   GIVES = Readln(TEMPFILE)
  122.   Call Close TEMPFILE
  123. End; Else
  124.   GIVES = ""
  125.  
  126. Return GIVES
  127.  
  128. MySetEnv: Procedure
  129. Parse Arg NAME,CONTENT
  130.  
  131. Address COMMAND "SetEnv" NAME CONTENT
  132.  
  133. Return
  134.